Skip to content

Conversation

@Amr-Shams
Copy link

@Amr-Shams Amr-Shams commented Nov 23, 2025

Description

This PR introduces detailed character statistics tracking and visualization to help users identify their strongest and weakest characters during typing tests.

Backend Changes

  • New Schema: Added detailedCharStats schema to track granular per-character statistics (correct/incorrect counts)
  • Result Processing: Refactored result processing to populate detailedCharStats from test data
  • Database Compatibility: Added optional field detailedCharStats for backward compatibility

Frontend Changes

  • Character Stats Display: Replaced "most mistaken/best char" with "miss / nail" display showing:
    • Miss: Character with the highest error rate (most mistakes)
    • Nail: Character with the highest success rate (most accurate)
  • Tooltips: Added informative tooltips displaying error and success rates for each character
  • Visualization: Integrated Chart.js to display a grouped bar chart showing correct vs incorrect counts per character
  • Data Processing: Added charStats.ts utility for character data manipulation and analysis
  • Copy Functionality: Added ability to copy character statistics to clipboard

Technical Details

  • Updated TypeScript interfaces across backend and frontend to support detailedCharStats
  • Maintained backward compatibility during

Checks

  • Check if any open issues are related to this PR; if so, be sure to tag them below.
  • Make sure the PR title follows the Conventional Commits standard.
  • Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title.

Closes #

*   Introduce  schema for granular character statistics.
*   Update  to use new  structure.
*   Modify  to correctly process  into DB format.
*   Adjust  to pass  for PB checks.
*   Refactor  to handle updated  structure safely.
*   Add ESLint plugins and workspaces configuration for monorepo setup.
*   Add new UI section to display character-specific performance statistics.
*   Integrate Chart.js to visualize character error rates.
*   Display a sortable list of character statistics including error rates and counts.
*   Update result processing to handle new  data structure.
*   Introduce  utility for character data manipulation and analysis.
*   Add functionality to copy character statistics to clipboard.
Migrate character statistics handling to use  object.
- : Removed  field.
- : Added optional .
- : Added optional ,  now array.
- Updated frontend to utilize .
- Updated backend to store .
Update the XP calculation logic in the backend to utilize the new  field instead of the  array.
- Replaces the character stats section with a 'miss / nail' display, showing the hardest and easiest characters.
- The tooltip for 'miss / nail' now shows the error and success rates.
- The character stats chart is now a grouped bar chart, showing correct and incorrect counts for each character.
- The character stats list below the chart has been removed.
@monkeytypegeorge monkeytypegeorge added backend Server stuff frontend User interface or web stuff packages Changes in local packages labels Nov 23, 2025
@Amr-Shams Amr-Shams changed the title feat: Add detailed character statistics tracking and visualization feat: Add detailed character statistics tracking and visualization @Amr-Shams Nov 23, 2025
@Amr-Shams Amr-Shams changed the title feat: Add detailed character statistics tracking and visualization @Amr-Shams feat: Add detailed character statistics tracking and visualization (@Amr-Shams) Nov 23, 2025
@github-actions
Copy link
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@github-actions
Copy link
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@github-actions
Copy link
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 23, 2025
@Amr-Shams
Copy link
Author

image this is how it look like, don't mind the score normally i do +100

@github-actions
Copy link
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 24, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Nov 24, 2025
@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​vitest/​coverage-v8@​4.0.4991006999100

View full report

@thesomewhatyou
Copy link
Contributor

oh may god where have you been all my life

@Amr-Shams
Copy link
Author

oh may god where have you been all my life

stuck on a good commit msg

@thesomewhatyou
Copy link
Contributor

oh may god where have you been all my life

stuck on a good commit msg

try:
"i want my ci tests to work"
"YOU'RE GETTING 'Error at line 42'"

@Amr-Shams
Copy link
Author

side note, we should remove the stats related to the char if this one approved by the maintainers. for a backward compatibility we can make a mapping between the versions of the rs,

@Miodec
Copy link
Member

Miodec commented Nov 26, 2025

Sorry, but i plan to implement this feature myself in a specific way. Im reworking some parts of the code to make this transition easier and to do it in a particular way. Next time get in touch before delevoping larger features to make sure they will be accepted. Sorry again.

@Miodec Miodec closed this Nov 26, 2025
@Amr-Shams
Copy link
Author

If that's the caae, i am more interested now, how can i communicate other than the email, is there a discord/slack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Server stuff frontend User interface or web stuff packages Changes in local packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants